/*
 * =====================================================================================
 *
 *       Filename:  observable.h
 *
 *    Description:  
 *
 *        Version:  1.0
 *        Created:  10/03/2010 02:51:40 AM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  Ken Chen (Ziliang), zlchen.ken@gmail.com
 *        Company:  EMC
 *
 * =====================================================================================
 */

#ifndef _OBSERVABLE_H
#define _OBSERVABLE_H

#include <list>

class Observer;
class Observable
{
public:
	virtual ~Observable();
  virtual void addObserver( Observer* o );
	virtual void removeObserver( const Observer* o );
	virtual void notifyObservers( void );
private:
  std::list<Observer*> itsObservers;
};

#endif //_OBSERVABLE_H
